// 按需导入 $http 对象
import {
  $http
} from '@escook/request-miniprogram'
import store from '../store/index.js'
/**
 * 网络请求参数
 * @param {string} url 请求的url地址
 * @param {string} method 请求方式
 * @param {Object} submitData 请求参数对象
 */

export function myHttp(url, method, submitData) {
  return new Promise(async (resolve, reject) => {
    const {
      data: {
        meta,
        message
      }
    } = await $http[method](`https://api.kuaijiankj.com/api/public/v1${url}`, submitData)
    if (meta.status === 200) {
      // 成功的请求
      resolve(message)
    } else {
      // 400错误
      if (meta.status === 400 && meta.msg==='无效的 token') {
        // 清空token
        await store.dispatch('user/asyncUpdateToken', '')
        uni.$showMsg('token失效，请重新登录')
        setTimeout(() => {
          // 重新登录
          uni.switchTab({
            url: '/pages/my/my',
            success: async () => {
              // 记录回跳信息
              await store.dispatch('user/asyncUpdateRedirectInfo', {
                openType: 'switchTab',
                from: '/pages/cart/cart'
              });
            }
          })
        }, 2000)
      } else {
        // 其他的错误提示(非token的问题)
        uni.$showMsg(meta.msg)
      }
      // 失败的请求
      reject(new Error(meta.msg))
    }
  })
}